
var editrecord;
var slectedrecord;

var UserRecord = Ext.data.Record.create([ {
	name : 'userid',
	mapping : 'userid',
	type : 'int'
}, {
	name : 'lgnname',
	mapping : 'lgnname'
}, {
	name : 'yhm',
	mapping : 'yhm'
}, 'userid' ]);

var store = new Ext.data.JsonStore({
	root : 'rows',
	totalProperty : 'total',
	idProperty : 'userid',
	fields : [ {
		name : 'userid',
		type : 'int'
	}, 'lgnname', 'yhm' ],
	url : form.contextpath + '/data/load/userlist.do'
});

var grid = new Ext.grid.GridPanel({
	title : '用户列表',
	store : store,
	trackMouseOver : false,
	loadMask : true,
	columns : [ {
		id : 'userid',
		header : "用户Id",
		dataIndex : 'userid',
		width : 100,
		hidden : true,
		sortable : true
	}, {
		header : "登录名",
		dataIndex : 'lgnname',
		width : 220,
		sortable : false
	}, {
		header : "用户名",
		dataIndex : 'yhm',
		width : 270,
		sortable : false
	} ],
	sm : new Ext.grid.RowSelectionModel({
		singleSelect : true,
		listeners : {
			rowselect : function(sm, row, rec) {
				slectedrecord = rec;
			}
		}
	}),
	bbar : new Ext.PagingToolbar({
		pageSize : 25,
		store : store,
		displayInfo : true,
		displayMsg : '显示记录 {0} - {1} / {2}',
		emptyMsg : "没有要显示的记录"
	}),
	tbar : new Ext.Toolbar({
		items : [ {
			text : "添加",
			handler : uf_add
		}, {
			text : "修改",
			handler : uf_mod
		}, {
			text : "维护角色",
			handler : uf_rule
		}, '-', {
			text : "删除",
			handler : uf_del
		} ]
	})
});

form.onload = function() {
	this.parentPanel.add(grid);
	grid.render("user_div");
	store.load({
		params : {
			start : 0,
			limit : 25
		}
	});
};
form.destroy = function() {
	if (!userForm) {
		userForm.destroy();
	}
	if (win) {
		win.destroy();
	}
	grid.destroy();
};

var win;
var userForm = new Ext.FormPanel({
	url : form.contextpath + "/user/save.do",
	deferredRender : false,
	border : false,
	reader : new Ext.data.JsonReader({
		root : 'rows',
		totalProperty : 'total',
		idProperty : 'userid',
		fields : [ {
			name : 'userid',
			mapping : 'userid'
		}, {
			name : 'dlm',
			mapping : 'dlm'
		}, {
			name : 'yhm',
			mapping : 'yhm'
		}, {
			name : 'lgnname',
			mapping : 'lgnname'
		}, {
			name : 'psword',
			mapping : 'psword'
		} ]
	}),

	items : {
		columnWidth : 0.4,
		xtype : 'fieldset',
		labelWidth : 60,
		defaults : {
			width : 320,
			border : false
		},
		defaultType : 'textfield',
		autoHeight : true,
		border : false,
		style : {
			"margin-top" : "10px"
		},
		items : [ {
			fieldLabel : 'userid',
			name : 'userid',
			hidden : true
		}, {
			fieldLabel : 'oper',
			name : 'oper',
			hidden : true,
			value : ""
		}, {
			fieldLabel : '用户名称',
			name : 'yhm',
			listeners : {
				"change" : function() {
					userForm.getForm().updateRecord(editrecord);
				}
			}
		}, {
			fieldLabel : '登录名',
			name : 'dlm',
			listeners : {
				"change" : function() {
					userForm.getForm().updateRecord(editrecord);
				}
			}
		}, {
			fieldLabel : '密码',
			name : 'psword',
			listeners : {
				"change" : function() {
					userForm.getForm().updateRecord(editrecord);
				}
			}
		} ]
	}
});
function createWin() {
	if (!win) {
		win = new Ext.Window({
			title : "角色信息维护",
			layout : 'fit',
			width : 450,
			height : 300,
			closeAction : 'hide',
			modal : true,
			plain : true,
			items : userForm,
			buttons : [ {
				text : '保存',
				handler : function(btn) {
					if (!editrecord.modified) {
						win.hide();
						return;
					}
					btn.disable();
					userForm.getForm().submit({
						waitTitle : '请稍候',
						waitMsg : '正在修改数据,请稍候...',
						success : function(form, action) {
							btn.enable();
							if (slectedrecord == null || editrecord.get("roleid") != slectedrecord.get("roleid")) {
								editrecord.set("roleid", action.result.result.roleid);
								editrecord.commit();
								store.insert(0, editrecord);
							} else {
								slectedrecord.set("roleid", editrecord.get("roleid"));
								slectedrecord.set("rolename", editrecord.get("rolename"));
								slectedrecord.set("remark", editrecord.get("remark"));
								slectedrecord.commit();
							}
							win.hide();
						},
						failure : function(form, action) {
							Ext.Msg.show({
								title : '错误提示',
								msg : action.result.contentTypeIsValid ? '操作失败' : '操作失败,文件类型不正确!',
								buttons : Ext.Msg.OK,
								fn : function() {
									btn.enable();
								},
								icon : Ext.Msg.ERROR
							});
							win.hide();
						}
					});
				}
			}, {
				text : '取消',
				handler : function() {
					win.hide();
				}
			} ],
			listeners : {
				"show" : function() {
					userForm.getForm().load({
						url : form.contextpath + '/data/load/userinfo.do',
						waitMsg : 'Loading',
						params : {
							userid : slectedrecord.get("userid")
						}
					});
					// userForm.getForm().loadRecord(editrecord);
				}
			}
		});
	}
}

function uf_add() {
	editrecord = new UserRecord({
		'roleid' : -1,
		'rolename' : '',
		'remark' : ''
	}, -1);
	userForm.getForm().setValues({
		"oper" : "add"
	});
	createWin();
	win.show(this);
}

function uf_mod() {
	if (slectedrecord) {
		editrecord = slectedrecord.copy();
		userForm.getForm().setValues({
			"oper" : "edit"
		});
		createWin();
		win.show(this);
	} else {
		Ext.MessageBox.alert("信息", "请选择一行记录！");
	}
}

function uf_rule() {
	if (slectedrecord) {
	} else {
		Ext.MessageBox.alert("信息", "请选择一行记录！");
	}
}

function uf_del() {
	if (!slectedrecord) {
		Ext.MessageBox.alert("信息", "请选择一行记录！");
		return;
	}
	Ext.MessageBox.confirm("确认信息", "确定要删除该角色吗？", function(a1, a2, a3) {
		if (a1 == "yes") {
			Ext.Ajax.request({
				url : form.contextpath + "/role/save.do",
				success : function(response, opts) {
					store.remove(slectedrecord);
				},
				failure : function(response, opts) {
					Ext.MessageBox.alert("信息", "删除失败！");
				},
				params : {
					"oper" : "del",
					"roleid" : slectedrecord.get("roleid")
				}
			});
		}
	});
}

